package me.zhengjie.modules.insurance.mapper;

import me.zhengjie.modules.insurance.domain.InsuredApplyDoc;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface InsuredApplyDocMapper {
    int deleteByPrimaryKey(Long id);

    int insert(InsuredApplyDoc record);

    int insertSelective(InsuredApplyDoc record);

    InsuredApplyDoc selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(InsuredApplyDoc record);

    int updateByPrimaryKey(InsuredApplyDoc record);


    /**
     * 批量插入
     *
     * @param applyDocs 应用文档
     * @return int
     */
    int batchInsert(List<InsuredApplyDoc> applyDocs);

    /**
     * 找到应用文档
     *
     * @param applyId 应用id
     * @return {@link List}<{@link InsuredApplyDoc}>
     */
    List<InsuredApplyDoc> findApplyDocs(@Param("applyId") long applyId);

    /**
     * 存在应用文档
     *
     * @param ids id
     * @return {@link List}<{@link Long}>
     */
    List<Long> existsApplyDoc(@Param("ids") List<Long> ids);

    /**
     * 删除应用文件
     *
     * @param applyId  应用id
     * @param type     类型
     * @param fileList 文件列表
     * @param userId   用户id
     */
    int deletedApplyFile(@Param("applyId") long applyId, @Param("type") int type, @Param("fileList") List<String> fileList, @Param("userId") long userId);

    /**
     * 删除案件非指定文件
     *
     * @param applyId  应用id
     * @param type     类型
     * @param notFiles 没有文件
     * @param userId   用户id
     * @return int
     */
    int deletedApplyFiles(@Param("applyId") long applyId, @Param("type") int type, @Param("fileList") List<String> notFiles, @Param("userId") long userId);

    /**
     * 获取案件真实文件地址
     *
     * @param applyId id
     * @return {@link List}<{@link String}>
     */
    List<String> getCaseDocFile(@Param("applyId") long applyId);
}